package br.com.webprojeto.cadastro;

import java.util.List;

import br.com.webprojeto.basicas.*;
import br.com.webprojeto.cadastro.interfaces.*;
import br.com.webprojeto.exception.CpfDuplicadoException;
import br.com.webprojeto.interfaces.*;

public class CadastroFuncionario implements InterfaceCadastroFuncionario {

	// atributos primarios da interface
	
	private InterfaceColecaoFuncionario funcionario;

	// construtores
	
	public CadastroFuncionario(InterfaceColecaoFuncionario funcionario) {
		super();
		this.funcionario = funcionario;
	}

	// metodos delegados
	
	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroFuncionario#adicionarFuncionario(br.com.webrastreio.basicas.Funcionario)
	 */
	public void adicionarFuncionario(Funcionario Fu) throws CpfDuplicadoException {
		if(procurarFuncionarioCpf(Fu.getCpf())==null){
		funcionario.adicionarFuncionario(Fu);
		}else{
			CpfDuplicadoException ex = new CpfDuplicadoException(Fu.getCpf());
			throw ex;
		}
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroFuncionario#removerFuncionario(br.com.webrastreio.basicas.Funcionario)
	 */
	public void removerFuncionario(Funcionario Fu) {
		funcionario.removerFuncionario(Fu);
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroFuncionario#atualizarFuncionario(br.com.webrastreio.basicas.Funcionario)
	 */
	public void atualizarFuncionario(Funcionario Fu) {
		funcionario.atualizarFuncionario(Fu);
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroFuncionario#listarFuncionario()
	 */
	public List<Funcionario> listarFuncionario() {
		return funcionario.listarFuncionario();
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroFuncionario#procurarFuncionario(java.lang.String)
	 */
	public Funcionario procurarFuncionarioCpf(String cpf) {
		return funcionario.procurarFuncionarioCpf(cpf);
	}

	
	
}
